home *** CD-ROM | disk | FTP | other *** search
Wrap
SSSSRRRROOOOTTTTGGGG((((3333SSSS)))) SSSSRRRROOOOTTTTGGGG((((3333SSSS)))) NNNNAAAAMMMMEEEE SSSSRRRROOOOTTTTGGGG, DDDDRRRROOOOTTTTGGGG, CCCCRRRROOOOTTTTGGGG, ZZZZRRRROOOOTTTTGGGG - Constructs a Givens plane rotation SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS Single precision Fortran: CCCCAAAALLLLLLLL SSSSRRRROOOOTTTTGGGG ((((_a,,,, _b,,,, _c,,,, _s)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ssssrrrroooottttgggg ((((ffffllllooooaaaatttt *_a,,,, ffffllllooooaaaatttt *_b,,,, ffffllllooooaaaatttt *_c,,,, ffffllllooooaaaatttt *_s))));;;; Double precision Fortran: CCCCAAAALLLLLLLL DDDDRRRROOOOTTTTGGGG ((((_a,,,, _b,,,, _c,,,, _s)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ddddrrrroooottttgggg ((((ddddoooouuuubbbblllleeee *_a,,,, ddddoooouuuubbbblllleeee *_b,,,, ddddoooouuuubbbblllleeee *_c,,,, ddddoooouuuubbbblllleeee *_s))));;;; Single precision complex Fortran: CCCCAAAALLLLLLLL CCCCRRRROOOOTTTTGGGG ((((_a,,,, _b,,,, _c,,,, _s)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ccccrrrroooottttgggg ((((ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_b,,,, ffffllllooooaaaatttt *_c,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_s))));;;; C++ STL: ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ccccrrrroooottttgggg ((((ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_b,,,, ffffllllooooaaaatttt *_c,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_s))));;;; Double precision complex Fortran: CCCCAAAALLLLLLLL ZZZZRRRROOOOTTTTGGGG ((((_a,,,, _b,,,, _c,,,, _s)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd zzzzrrrroooottttgggg ((((ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_b,,,, ddddoooouuuubbbblllleeee *_c,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_s))));;;; C++ STL: ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd zzzzrrrroooottttgggg ((((ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_b,,,, ddddoooouuuubbbblllleeee *_c,,,, PPPPaaaaggggeeee 1111 SSSSRRRROOOOTTTTGGGG((((3333SSSS)))) SSSSRRRROOOOTTTTGGGG((((3333SSSS)))) ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_s))));;;; IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN These routines are part of the SCSL Scientific Library and can be loaded using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option. The ----llllssssccccssss____mmmmpppp option directs the linker to use the multi-processor version of the library. When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is 4 bytes (32 bits). Another version of SCSL is available in which integers are 8 bytes (64 bits). This version allows the user access to larger memory sizes and helps when porting legacy Cray codes. It can be loaded by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use only one of the two versions; 4-byte integer and 8-byte integer library calls cannot be mixed. The C and C++ prototypes shown above are appropriate for the 4-byte integer version of SCSL. When using the 8-byte integer version, the variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header file should be included. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN DDDDRRRROOOOTTTTGGGG/SSSSRRRROOOOTTTTGGGG computes the elements of a rotation matrix such that: _ _ _ _ _ _ | c s | | a | | r | |-s c | * | b | = | 0 | - - - - - - where 2 2 2 2 r = +- sqrt (a + b ) and c + s = 1 CCCCRRRROOOOTTTTGGGG/ZZZZRRRROOOOTTTTGGGG computes the elements of a rotation matrix such that: _ _ _ _ _ _ | c s | | a | | r | | _ | | | | | |-s c | * | b | = | 0 | - - - - - - where _ _ _ r = (a / sqrt(aa)) * sqrt ((aa) + (bb)) PPPPaaaaggggeeee 2222 SSSSRRRROOOOTTTTGGGG((((3333SSSS)))) SSSSRRRROOOOTTTTGGGG((((3333SSSS)))) and the notation - z represents the complex conjugate of _z. See the NOTES section of this man page for information about the interpretation of the data types described in the following arguments. These routines have the following arguments: _a First vector component. (input and output) SSSSRRRROOOOTTTTGGGG (Single precision), DDDDRRRROOOOTTTTGGGG (Double precision): On input, the first component of the vector to be rotated. On output, _a is overwritten by by _r, the first component of the vector in the rotated coordinate system where: 2 2 r = sign(sqrt(a + b ,a), if |a| > |b| 2 2 r = sign(sqrt(a + b ,b), if |a| <= |b| CCCCRRRROOOOTTTTGGGG (Single precision complex), ZZZZRRRROOOOTTTTGGGG (Double precision complex): On output, _a is overwritten by the unique complex number _r, whose size in the complex plane is the Euclidean norm of the complex vector ((((aaaa,,,,bbbb)))), and whose direction in the complex plane is the same as that of the original complex element _a. For C/C++, a pointer to this value is passed. _b Second vector component. (input and output) SSSSRRRROOOOTTTTGGGG: Single precision. DDDDRRRROOOOTTTTGGGG: Double precision. CCCCRRRROOOOTTTTGGGG: Single precision complex. ZZZZRRRROOOOTTTTGGGG: Double precision complex. On input, the second component of the vector to be rotated. On output, _b contains _z, where: z=s if |a| > |b| z=1c if |a| <= |b| and c =/ 0 z=1 if c = 0. PPPPaaaaggggeeee 3333 SSSSRRRROOOOTTTTGGGG((((3333SSSS)))) SSSSRRRROOOOTTTTGGGG((((3333SSSS)))) For C/C++, a pointer to this value is passed. _c Cosine of the angle of rotation. (output) SSSSRRRROOOOTTTTGGGG: Single precision. DDDDRRRROOOOTTTTGGGG: Double precision. CCCCRRRROOOOTTTTGGGG: Single precision. ZZZZRRRROOOOTTTTGGGG: Double precision. For C/C++, a pointer to this value is passed. _s Sine of the angle of rotation. (output) SSSSRRRROOOOTTTTGGGG: Single precision. DDDDRRRROOOOTTTTGGGG: Double precision. CCCCRRRROOOOTTTTGGGG: Single precision complex. ZZZZRRRROOOOTTTTGGGG: Double precision complex. For C/C++, a pointer to this value is passed. NNNNOOOOTTTTEEEESSSS SSSSRRRROOOOTTTTGGGG/DDDDRRRROOOOTTTTGGGG routines are Level 1 Basic Linear Algebra Subprograms (Level 1 BLAS). CCCCRRRROOOOTTTTGGGG and ZZZZRRRROOOOTTTTGGGG, are extensions to the Level 1 Basic Linear Algebra Subprograms (Level 1 BLAS). The value of _z, returned in _b by SSSSRRRROOOOTTTTGGGG, gives a compact representation of the rotation matrix, which can be used later to reconstruct _c and _s as in the following example: IF (B .EQ. 1. ) THEN C = 0. S = 1. ELSEIF( ABS( B) .LT. 1) THEN C = SQRT( 1. - B * B) S = B ELSE C = 1. / B S = SQRT( 1 - C * C) ENDIF DDDDaaaattttaaaa TTTTyyyyppppeeeessss The following data types are described in this documentation: TTTTeeeerrrrmmmm UUUUsssseeeedddd DDDDaaaattttaaaa ttttyyyyppppeeee Fortran: Array dimensioned _n xxxx((((nnnn)))) PPPPaaaaggggeeee 4444 SSSSRRRROOOOTTTTGGGG((((3333SSSS)))) SSSSRRRROOOOTTTTGGGG((((3333SSSS)))) Integer IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision RRRREEEEAAAALLLL Double precision DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN Single precision complex CCCCOOOOMMMMPPPPLLLLEEEEXXXX Double precision complex DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX C/C++: Array dimensioned _n xxxx[[[[_n]]]] Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee Single precision complex ssssccccssssllll____ccccoooommmmpppplllleeeexxxx Double precision complex ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx C++ STL: Array dimensioned _n xxxx[[[[_n]]]] Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee Single precision complex ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> Double precision complex ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> SSSSEEEEEEEE AAAALLLLSSSSOOOO IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS1111(3S), SSSSRRRROOOOTTTT(3S), SSSSRRRROOOOTTTTMMMM(3S), SSSSRRRROOOOTTTTMMMMGGGG(3S) IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77 Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic Linear Algebra Subprograms Technical Forum. PPPPaaaaggggeeee 5555